// src/types/setMeal.ts

// 定义套餐中包含的菜品
export interface ISetMealDish {
  id?: number;
  setmealId?: number;
  dishId: number;
  name: string;
  price: number;
  copies: number;
}

// 定义完整的套餐对象 (用于分页查询结果和ID查询结果)
export interface ISetMeal {
  id: number;
  categoryId: number;
  categoryName?: string; // 分页查询时会返回
  name: string;
  price: number;
  status: number; // 0 | 1
  description: string;
  image: string;
  updateTime: string;
  setmealDishes?: ISetMealDish[]; // ID查询时会返回
}

// 定义分页查询的 Query 参数接口
export interface ISetMealPageQuery {
  page: number;
  pageSize: number;
  name?: string;
  categoryId?: number;
  status?: number;
}

// 定义分页查询接口返回的数据结构
export interface ISetMealPageResult {
  total: number;
  records: ISetMeal[];
}

// 定义新增套餐时，需要提交的数据 DTO (Data Transfer Object)
export interface ISetMealAddDTO {
  categoryId: number;
  description?: string;
  image: string;
  name: string;
  price: number;
  setmealDishes: ISetMealDish[];
  status: number; // 0 | 1
}

// 定义编辑套餐时，需要提交的数据 DTO
export interface ISetMealEditDTO extends ISetMealAddDTO {
  id: number;
}
